home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
PROGRAMM
/
DB_CLIPP
/
0643A.ZIP
/
SHOWRC.PRG
< prev
next >
Wrap
Text File
|
1987-04-24
|
2KB
|
66 lines
* Program ...: Scrolrec
* Author ....: Saul Shiffman, with inspiration from A-T TechNotes routines
* Date ......: 3/29/87
* Note(s) ...: Selects a record from a database
* Displays data from database records and allows user to scroll through
* them and select a record.
* The database should be open to a starting record when calling;
* The pointer is set to the selected record, and RECNO is set to RECNO(),
* UNLESS the user exited by pressing ESC, in which case, the RECNO()
* pointer is meaningless and RECNO=0
* EXPRESS is a C memvar containing a C expression that must
* evaluate to a FIXED LENGTH character string
* RECNO returns the record number, =0 if hit ESC
PARAMETERS ROW, COL, EXPRESS,RECNO
PRIVATE ESC,UPARROW,DNARROW,ENTER,KEY
* ---Key definitions.
ESC = CHR(27)
UPARROW = CHR(5)
DNARROW = CHR(24)
ENTER = CHR(13)
KEY = CHR(0)
DO WHILE .NOT. (KEY=ENTER .OR. KEY=ESC)
SET COLOR TO N/W
@ ROW, COL SAY &EXPRESS && Show EXPRESS in reverse video
SET COLOR TO W/N
KEY = CHR(0)
* ---Get key.
SET ESCAPE OFF
DO WHILE .NOT. (KEY $ (ESC + ENTER + DNARROW + UPARROW) )
KEY = UPPER(CHR(INKEY()))
ENDDO .... WHILE .NOT. (KEY $ (ESC + ENTER + DNARROW + UPARROW) )
SET ESCAPE ON
DO CASE
CASE KEY = ESC
RECNO=0
CASE KEY = DNARROW
IF EOF()
?? CHR(7) && error: can't go beyond EOF
ELSE .... IF not EOF()
SKIP
ENDIF .... IF EOF()
CASE KEY = UPARROW
IF BOF()
?? CHR(7) && error: can't go beyond BOF
ELSE .... IF not BOF()
SKIP -1
ENDIF .... IF BOF()
CASE KEY = ENTER
RECNO=RECNO()
ENDCASE
ENDDO .... WHILE .NOT. (KEY=ENTER .OR. KEY=ESC)
RETURN